package com.wys.common.utils;


import java.io.*;
import java.net.URL;

/**
 * 阿里云对象存储上传
 *
 * @Package com.wys.common.utils
 * @Author charlin
 * @Version: v1.0
 * @Date 2021-06-1715:13
 * @Copyright: 2021 www.wyscha.com Inc. All rights reserved.
 */
public class OssUploadUtil {

//    /**
//     * 流式上传
//     */
//    public static void uploadByStream() {
//        // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1（杭州）为例，Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
//        String endpoint = "yourEndpoint";
//        // 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
//        String accessKeyId = "yourAccessKeyId";
//        String accessKeySecret = "yourAccessKeySecret";
//
//        // 创建OSSClient实例。
//        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
//
//        // 填写字符串。
//        String content = "Hello OSS";
//
//        // 创建PutObjectRequest对象。
//        // 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。
//        PutObjectRequest putObjectRequest = new PutObjectRequest("examplebucket", "exampleobject.txt", new ByteArrayInputStream(content.getBytes()));
//
//        // 如果需要上传时设置存储类型和访问权限，请参考以下示例代码。
//        // ObjectMetadata metadata = new ObjectMetadata();
//        // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
//        // metadata.setObjectAcl(CannedAccessControlList.Private);
//        // putObjectRequest.setMetadata(metadata);
//
//        // 上传字符串。
//        ossClient.putObject(putObjectRequest);
//
//        // 关闭OSSClient。
//        ossClient.shutdown();
//    }
//
//    /**
//     * 字节上传
//     */
//    public static void uploadByByte() {
//        // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1（杭州）为例，Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
//        String endpoint = "yourEndpoint";
//        // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录 https://ram.console.aliyun.com 创建RAM账号。
//        String accessKeyId = "yourAccessKeyId";
//        String accessKeySecret = "yourAccessKeySecret";
//        // 创建OSSClient实例。
//        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId,accessKeySecret);
//        // 填写Byte数组。
//        byte[] content = "Hello OSS".getBytes();
//        // 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。
//        ossClient.putObject("examplebucket", "exampleobject.txt", new ByteArrayInputStream(content));
//        // 关闭OSSClient。
//        ossClient.shutdown();
//    }
//
//
//    /**
//     * 上传网络流
//     */
//    public static void uploadByNetStream() {
//        // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1（杭州）为例，Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
//        String endpoint = "yourEndpoint";
//        // 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
//        String accessKeyId = "yourAccessKeyId";
//        String accessKeySecret = "yourAccessKeySecret";
//        // 创建OSSClient实例。
//        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
//        // 填写网络流地址。
//        InputStream inputStream = null;
//        try {
//            inputStream = new URL("https://www.aliyun.com/").openStream();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        // 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。
//        ossClient.putObject("examplebucket", "exampleobject.txt", inputStream);
//        // 关闭OSSClient。
//        ossClient.shutdown();
//    }
//
//    /**
//     * 上传文件流
//     */
//    public static void uploadByFileStream() {
//        // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1（杭州）为例，Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
//        String endpoint = "oss-cn-beijing.aliyuncs.com";
//        // 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
//        String accessKeyId = "LTAI5tJdbfYNXqfDG3tu6ioJH2";
//        String accessKeySecret = "lAraWT3r8EF43RUBcIj7q8NFWWQhz9n";
//
//        // 创建OSSClient实例。
//        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
//
//        // 填写本地文件的完整路径。如果未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件流。
//        InputStream inputStream = null;
//        try {
//            inputStream = new FileInputStream("C:\\Users\\Administrator\\Desktop\\图片\\ia_100000003.png");
//        } catch (FileNotFoundException e) {
//            e.printStackTrace();
//        }
//        // 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。
//        ossClient.putObject("wysmall", "ia_100000003.png", inputStream);
//        // 关闭OSSClient。
//        ossClient.shutdown();
//
//        System.out.println("上传成功！");
//    }
//
//    public static void main(String[] args) {
//        uploadByFileStream();
//    }
}
